package com.xuelang.pipeline.client.application.dto;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
import java.util.Date;

/**
 * 运维特征DTO
 *
 * @author xiwen.zxg
 * @since 2024/5/15
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class TraitDTO {


    /**
     * 运维特征UUID
     */
    private String uuid;
    /**
     * 应用编码
     */
    @NotEmpty(message = "应用编码不能为空")
    private String applicationCode;

    /**
     * 组件Label
     */
    @NotEmpty(message = "组件Label不能为空")
    private String componentLabel;

    /**
     * 环境UUID
     */
    @NotEmpty(message = "环境UUID不能为空")
    private String environmentUuid;

    /**
     * 副本数
     */
    @NotNull(message = "副本数不能为空")
    private Integer replicas;

    /**
     * 端口
     */
    @NotEmpty(message = "端口不能为空")
    private String port;

    /**
     * CPU
     */
    @NotEmpty(message = "CPU不能为空")
    private String cpu;

    /**
     * 内存
     */
    @NotEmpty(message = "内存不能为空")
    private String internalStorage;

    /**
     * 域名
     */
    @NotEmpty(message = "域名不能为空")
    private String domainName;

    /**
     * 运维特征配置
     */
    private String configuration;

    /**
     * 创建人
     */
    private String creatorId;

    /**
     * 创建时间
     */
    private Date createTime;

}
